In order to control the attitude of a spacecraft, various rotating inertia members are used. One such inertia member is a control moment gyroscope (CMG). A CMG typically comprises a flywheel with a fixed or variable spin rate mounted to a gimbal assembly. The spin axis of the CMG can be tilted by moving the CMG using the gimbal assembly. This motion produces a gyroscopic torque orthogonal to the spin axis and gimbal axis.
To achieve full attitude control of a spacecraft, a minimum of three CMGs, arranged such that each CMG in the CMG array imparts torque about a linearly independent axis, is typically used. The CMGs are moved about their gimbal axis in response to a command for torque from the spacecraft attitude-control system. Expressed mathematically, a Jacobian A maps the CMG gimbal rates into a three dimensional array torque:Aω=τwhere A is a 3×n Jacobian matrix, ω is a n×1 array of gimbal rates for the n gimbals, and τ is a 3×1 array of torque components to be imparted to the spacecraft. From the above equation and with a known torque command, τ, the individual gimbal rates for each CMG can be calculated. Using the known Moore-Penrose pseudoinverse to invert the Jacobian matrix, a set of possible gimbal rates is:ω=AT(AAT)−1τ
For a given array of CMGs, various alignments of the individual CMGs in the array will produce a given momentum. The collection of momentum for all possible alignments of the CMGs in a CMG array is the momentum envelope. The boundaries of the momentum envelope represent the maximum achievable momentum for a particular alignment of CMGs. In one embodiment, when there are three CMGs, each point in the momentum envelope can be achieved, in general, by a unique combination of gimbal angles. When the number of CMGs exceeds the minimum number of CMGs required for full attitude control, then most points in the momentum envelope can be defined by more than one alignment of the CMGs in the CMG array.
Conversely, in response to a command to produce a requested torque, the CMGs can be in one of several alignments; each alignment produces the requested torque but at a different point on the momentum envelope. It therefore follows that for an array of CMGs having more than three CMGs, there is an alignment of the CMGs that will result in a requested torque and maximize the potential to deliver momentum.
Inherent in the use of CMGs is the possibility that the CMGs' momentum vectors may line up in such a way that one or more components of the requested torque cannot be provided. Mathematically this situation occurs when the eigenvalues of AAT approach zero, causing (AAT)−1 to go to infinity. Equivalently, singularities occur when the determinant of the matrix AAT is equal to zero (expressed algebraically as det(AAT)=0). In the case of a 3×n matrix A, this is equivalent to saying the rank of the matrix AAT is two or less.
Different approaches have been devised to avoid singularities in the movement of CMGs. In one approach, to ensure that (AAT)−1 never is 0, (AAT)−1 is replaced by (AAT+εI)−1 where I is the identity matrix and ε is a small number. The use of a positive ε ensures that det(AAT+εI)−1 never becomes 0.
While useful in some instances, a drawback to this approach is that this approach changes the gimbal rate calculation. An analogous problem is the scalar expression                               1                                    a              2                        +            ɛ                          .                                  ⁢        As            ⁢                          ⁢      a        ->    0    ,            1                        a          2                +        ɛ              ->          1      ɛ        ,which is well-behaved but not equal to       1          a      2        .In the case of the Jacobian A, the pseudoinverse no longer exactly maps gimbal rates into the commanded torques because of the error ε introduces. This resulting error steers the spacecraft in the wrong direction and can introduce significant, undesired torque, especially near the singularity.
A further drawback of the (AAT+εI)−1 approach is that it does very little until the CMGs are already very near the singularity, where gimbal-rate capability (and therefore CMG array torque capability) can be undesirably low. What is needed is a method and system for maximizing available torque during CMG movements. In addition, it is further desirable to provide a momentum-control system with the maximum torque available when CMGs are manipulated. This optimization allows the momentum-control system to provide momentum for a large period of time or larger amounts of momentum for a short period of time. While the present invention does not address the inability of a singular array to apply torque perpendicular to the current torque command, the present invention maximizes capability in the currently commanded direction, which is of greater value. That is, the present invention addresses singularity avoidance only for the direction of the currently commanded torque. However, nothing precludes the use of the present invention described herein at the same time as one of many other singularity-avoidance approaches. The commands from the teachings of the present invention and the commands from a singularity-avoidance method can assigned various weights and combined in a way chosen as the best compromise between performance in one dimension (the present invention) and singularity avoidance in three dimensions.